home *** CD-ROM | disk | FTP | other *** search
/ Network Supervisor's Toolkit / Network Supervisor's Toolkit.iso / e-mail / wanchat / wanchat.doc < prev    next >
Text File  |  1996-07-10  |  18KB  |  397 lines

  1. WANCHAT V1.00B by Stephan A. Edelman
  2. NetLink Online Information Services
  3. (C) 1994. All Rights Reserved.  Shareware Version
  4.  
  5. -------------------------------------------------------------------------
  6. DISCLAIMER:
  7.  
  8. EXCEPT AS RESTRICTED BY LAW, THE SOFTWARE PROGRAMS CONTAINED IN THIS
  9. ARCHIVE ARE PROVIDED "AS IS" WITHOUT ANY WARRANTY OF ANY KIND, EITHER
  10. EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO, ANY IMPLIED 
  11. WARRANTIES OF MERCHANTABILITY, TITLE OR FITNESS FOR A PARTICULAR 
  12. PURPOSE. YOU MAY WITHOUT CHARGE, REPRODUCE AND DISTRIBUTE COPIES OF
  13. THIS ARCHIVE PROVIDED YOU DO NOT (1) RECEIVE ANY DIRECT PAYMENT,
  14. COMMERCIAL BENEFIT, OR OTHER CONSIDERATION FOR THE REPRODUCTION,
  15. DISTRIBUTION OR USE, OR DISTRIBUTE THIS ARCHIVE AS PART OF OR IN
  16. COMBINATION WITH ANY OTHER SOFTWARE OR HARDWARE PRODUCT WITHOUT THE
  17. PRIOR WRITTEN CONSENT OF NETLINK ONLINE INFORMATION SERVICES. 
  18. (2) CHANGE OR OMIT ANY PROPRIETARY RIGHTS NOTICE APPEARING IN THE FILES
  19. CONTAINED IN THE ARCHIVE.
  20. -------------------------------------------------------------------------
  21.  
  22.  
  23. Motivation
  24. ==========
  25.  
  26. The WANCHAT program was a direct result of a similar network 'chat' program
  27. developed by L. Brett Glass in 1988, called NETCHAT(tm). NETCHAT(tm) was
  28. designed to operate in a NETBIOS environment and allowed multiple users
  29. to communicate or 'chat' with each other in a conference type of session.
  30. This program worked very well, and, as a matter of fact, we utilized it
  31. to test wide-area-network communications across our router. However, we
  32. are presently removing NETBIOS support from our workstations which renders
  33. the NETCHAT(tm) program useless. The need arose to have a similar 'chat'
  34. program which would use native netware IPX. We searched the various 
  35. libraries such as NOVLIB and NOVUSR on CompuServe, as well as the FTP 
  36. archive of OAK.OAKLAND.EDU. We came to the conclusion that a 'chat' 
  37. program similar to NETCHAT(tm) was not available for netware IPX. The 
  38. programs that were available, either would not pass through our routers, 
  39. or would only allow a maximum of two (2) people to chat at a time. We set 
  40. out to develop our own 'chat' program using the Novell Network C interface 
  41. for DOS, with the following guidelines:
  42.  
  43.         (1) Allow multiple people to chat with each other
  44.         (2) Provide for multiple channels
  45.         (3) Allow it to function in a multi-server, multi-network
  46.             environment
  47.         (4) Function in a Netware Lite(tm) environment
  48.  
  49. We believe that WANCHAT has conformed to these requirements, and we hope
  50. that you will find it useful.
  51.  
  52.  
  53. Getting Started
  54. ===============
  55.  
  56. WANCHAT is, in many ways, similar to the popular Internet-Relay-Chat (IRC) 
  57. client on the internet. There are a number of command line parameters, 
  58. each of these parameters are be described below:
  59.  
  60.  
  61.         WANCHAT <channel no> [<username>,<username>,...] [/NET ADDRESS]
  62.  
  63.  
  64. The CHANNEL NO refers to the channel that you will be starting a 'chat'
  65. session on. You can select any number ranging from 0 to 99. IPX 'chat'
  66. traffic directed towards a particular channel will not interfere with
  67. 'chat' traffic on any other channel. The USERNAME field is optional and
  68. identifies a user that you wish to chat with. You can specify multiple
  69. users by separating them with a comma (,). Do *NOT* use any spaces in
  70. between the usernames. WANCHAT will then send a Novell message to these
  71. users identified on the command line. It must be noted that the users
  72. specified must exist on the default fileserver and you must be attached
  73. (or logged-in) to this fileserver. The following message
  74. will be sent to these users:
  75.  
  76.  STEPHAN would like to chat with you on channel X     (CTRL-ENTER to clear)
  77.  
  78. The next optional switch identifies an additional network to send IPX 'chat'
  79. packets to. This is required if you wish to chat with somebody on another
  80. network. It must be noted that the networks must be connected (or bridged)
  81. by means of a router, and, the router must pass through IPX broadcast
  82. packets. 
  83.  
  84. For example:
  85.  
  86.         WANCHAT 1 STEPHAN,JOHN /1000FF10
  87.  
  88. This will notify users STEPHAN and JOHN, start a 'chat' session on channel 
  89. one and also echo 'chat' traffic to network 1000FF10. Before WANCHAT enters
  90. the 'chat' mode, it lists the results of the send message. If the specified
  91. users are not logged in, then you have the option of exiting WANCHAT before
  92. starting a 'chat' session. Something similar to that shown below will be
  93. displayed:
  94.  
  95. C:> WANCHAT 1 STEPHAN,JOHN
  96. Message sent to STEPHAN (Station 13)
  97. Message NOT sent to STEPHAN (Station 14)
  98. user JOHN not logged in
  99.  
  100. Press [ESC] to quit, any other key to continue.
  101.  
  102. It must be noted that you should *NOT* specify usernames on the command-
  103. line when you are not logged in, or, when you do not have access to
  104. bindery services as in the case of Netware Lite(tm).
  105.  
  106.  
  107. Beginning a Chat Session
  108. ========================
  109.  
  110. Once you have specified your required parameters on the command-line,
  111. a chat session will be started. If you are logged in to a novell network,
  112. your username and identity (usually your first and last name) will be
  113. retrieved from the server's bindery. If you are not logged in, or, you
  114. are running Netware Lite(tm), you will be required to enter in a username.
  115. In this case, you can select any username you desire. The screen is cleared
  116. and you will have a flashing cursor at the bottom of your screen. The 
  117. current channel number will be displayed as well as the current topic.
  118. Any text that you type (up to 66 characters) followed by the [ENTER] key 
  119. will be broadcast to all users on that channel. You will see your username
  120. appear on the screen, followed by a colon and the text that you typed.
  121. Everything that is displayed above the 'topic' bar is what is received
  122. from the network on that channel. You have a number of options:
  123.  
  124.     (F1)  Channels - Allows changing of the channel
  125.     (F2)  Topic    - Allows changing of the topic
  126.     (F3)  Handle   - Allows changing of your current username
  127.     (ESC) Exit     - Terminates the 'chat' session
  128.  
  129. Each of the above listed options will be briefly described below.
  130.  
  131. o Channels
  132.  
  133.         When you press the [F1] key during a 'chat' session,
  134.         the text 'Channel x>' will be replaced by 'Enter new channel>'
  135.         at this point you can enter any value ranging from 0 to 99.
  136.         When you select a channel other than the one that you were
  137.         already on, WANCHAT will broadcast the following message to
  138.         the users on the previous channel:
  139.  
  140.         --> User STEPHAN (Stephan Edelman) has left this channel (x)
  141.  
  142.         The following message will be broadcast to the users on the 
  143.         channel that you are joining:
  144.  
  145.         --> User STEPHAN (Stephan Edelman) has joined channel x
  146.  
  147.         This notifies the users of that channel that you are joining
  148.         in and wish to chat with them.
  149.  
  150. o Topic
  151.         
  152.         When you press the [F2] key during a 'chat' session,
  153.         the text 'Channel x>' will be replaced by the text 'Enter
  154.         new topic>', at this point you can enter any text up to
  155.         30 characters in length. Once you have pressed this key,
  156.         you are forced to enter in a new topic. The following message
  157.         will be sent to all the users on your channel:
  158.  
  159.         --> The topic has been changed to 'NEW TOPIC' by STEPHAN
  160.  
  161.         The change in topic will also be reflected by the status bar
  162.         in the lower left hand corner of the screen.
  163.  
  164. o Handle
  165.  
  166.         When you press the [F3] key during a 'chat' session,
  167.         the text 'Channel x>' will be replaced by the text 'Enter
  168.         new handle>', at this point you can enter any text up to 30
  169.         characters in length. Once you have pressed this key,
  170.         you are forced to enter in a new handle for your username.
  171.         The following message will be sent to all the users on your
  172.         channel:
  173.  
  174.         --> User STEPHAN (Stephan Edelman) is now known as 'Edelman'
  175.  
  176. o Exit
  177.  
  178.         When you press the [ESC] key during a 'chat' session, your
  179.         'chat' session will be immediately terminated. You will *NOT*
  180.         be asked to confirm leaving of your channel. The following
  181.         message will be sent to all users on your channel:
  182.  
  183.         --> User STEPHAN (Stephan Edelman) has left this channel (x)
  184.  
  185.  
  186.  
  187. 'Chatting' on a WAN
  188. ===================
  189.  
  190. When you do not specify a destination network (using the /xxxxxxxx option),
  191. 'chat' packets originated by you will remain within the same network 
  192. (i.e., will not cross routers). However, when another user on another 
  193. network has started up WANCHAT with your network number specified on the
  194. command-line, packets will be sent to your network as well as his own.
  195. For example, user A is on network 1000 and has started WANCHAT on channel
  196. one (WANCHAT 1). He will be sending IPX 'chat' packets on network 1000 only.
  197. User B is on network 1001 and has started WANCHAT on channel one and
  198. specified /1000 on the command-line. The moment this user started WANCHAT
  199. on channel one (WANCHAT 1 /1000) a message was broadcast to both networks
  200. (1000 and 1001) indicating user B's presence on that channel. At this
  201. time, the network table maintained by user A will be updated to include
  202. sending out 'chat' packets to the users on network 1001. This is accomplished
  203. by including the network number as part of the 'chat' packet. Every incoming
  204. packet is examined for new network addresses and the internal network table
  205. maintained by WANCHAT is updated. In addition, a RIP like packet (in terms
  206. of its function) is being broadcast by all users running WANCHAT every 30 
  207. seconds. This allows networks several 'hops' away to also start a chat 
  208. session with several users on different networks. The RIP (routing 
  209. information packet) contains all of the network addresses that our known
  210. to a particular WANCHAT user. If a RIP packet is received that contains
  211. more networks than another WANCHAT user knows about, it will add the 
  212. new network to the internal network name table. This will cause all 
  213. WANCHAT users to eventually know about all the networks that contain 
  214. WANCHAT users.
  215.  
  216. Example 1:
  217. ----------
  218.  
  219.  
  220.         USER 1        USER 2       USER 3       USER 4
  221.         [1000]        [1001]       [1002]       [1003]
  222.  
  223.  
  224. In order to have all four users 'chat' with each other, they must all
  225. specify a 'common' destination address. For instance, USER 1, USER 2
  226. and USER 4 would all specify the same network address of 1002.
  227. This means that USER 2 can both send and receive packets to/from USER 1, 
  228. USER 3 and USER 4. USER 1, USER 3 and USER 4 can all receive 'chat' 
  229. packets from USER 2, but not individually between USER 3 and USER 4, or
  230. USER 1 and USER 3, etc. This is due to the fact that USER 3 does not
  231. know about USER 2's network, USER 4 does not know about USER 3's network,
  232. etc. Only USER 2 knows about all the networks out there, it will send out
  233. a periodic RIP packet that will include the destination network of all of
  234. the networks it knows about, therefore, eventually all networks running
  235. WANCHAT will know about each other. 
  236.  
  237. Example 2:
  238. ----------
  239.  
  240. One user is running WANCHAT on channel one and has specified an additional
  241. network where 'chat' packets should be broadcast to. There are no other
  242. users on the remote network that are running WANCHAT, so this user's
  243. identification notification (--> User XXX has joined channel 1) is sent out
  244. in vain. This user does not type anything in, but leaves WANCHAT running.
  245. Two new users on the remote network start-up WANCHAT and do not specify
  246. a network address, in other words, they are not interested in sending
  247. 'chat' packets out, other than to their own network. Each of these two
  248. stations will send out RIP packets every 30 seconds, however, because no
  249. remote address was specified, the RIP packets will not contain any 
  250. additional networks. The one user on the remote network will also send out
  251. RIP packets every 30 seconds, which will be received by the two stations,
  252. which, in turn will update their table. As soon as these two stations 
  253. see that another network is present, they will each send out the
  254. message --> USER XXXX has joined channel 1, to indicate to the one remote
  255. user that two additional users have been added to the WANCHAT.
  256.  
  257.  
  258. In each of the above cases, whenever a identification notification is
  259. sent, the receiving stations will immediately broadcast the topic
  260. for that channel to the new station.
  261.  
  262.  
  263. Technical Information
  264. =====================
  265.  
  266. The channel number specified in WANCHAT is used as an offset to the base
  267. socket number of 0x4100, which is used for communicating 'chat' packets
  268. across the network. In other words, when a particular user specifies channel
  269. one (1), then socket number 0x4101 will be used for sending and receiving.
  270. The 'chat' packets are made up of the following data:
  271.  
  272. Offset 00h                      Network address
  273.  
  274.                                 4-byte address of the network that
  275.                                 originated the packet.
  276.                                 
  277.  
  278. Offset 04h                      Packet Type Identifier
  279.                                  
  280.                                   10h   IS_CHANNEL_IN_USE
  281.                                   11h   CHANNEL_IS_IN_USE
  282.                                   12h   TOPIC_PACKET
  283.                                   13h   NEW_USER_PACKET
  284.                                   14h   RIP_PACKET
  285.                                   15h   DATA_PACKET
  286.  
  287. Offset 05h - 100h               Message Data
  288.                                 The message data contains the message that
  289.                                 the user sent out, if the Packet Type
  290.                                 identifier (offset 04h) was set to
  291.                                 DATA_PACKET.
  292.  
  293.  
  294. Packet Type Identifier
  295. ======================
  296.  
  297. The packet type identifier indicates to the receiver of the packet, what
  298. the contents of the packet refer to. The following structures should be
  299. expected for each of the different Packet Type Identifiers:
  300.  
  301. (10h)   IS_CHANNEL_IN_USE
  302.  
  303. This packet is sent out by WANLIST to query what channels are being used
  304. on the network. The Message DATA portion is ignored and generally left
  305. blank. The reply to this query is given by the CHANNEL_IS_IN_USE packet.
  306.  
  307. (11h)   CHANNEL_IS_IN_USE
  308.  
  309. This packet is sent out by *ALL* WANCHAT users when a IS_CHANNEL_IN_USE
  310. packet is received. The message portion of the CHANNEL_IS_IN_USE packet
  311. should contain a NULL terminated string referring to the present TOPIC
  312. of that channel.
  313.  
  314. (12h)   TOPIC_PACKET
  315.  
  316. This packet is sent out by a WANCHAT user who has changed the current topic
  317. of conversation on a particular channel. The message portion contains a
  318. NULL terminated string with the new topic. The topic string should not be
  319. any larger than 28 bytes. It must be noted that this changes the topic
  320. indicated in the lower left hand corner of WANCHAT. It does *NOT* notify
  321. users of a TOPIC change. This is accomplished by sending out a separate
  322. broadcast data packet with the message --> topic has been changed 
  323. by XXXXXX to 'XXXXX'.
  324.  
  325. (13h)   NEW_USER_PACKET
  326.  
  327. This packet is sent out whenever a new user enters a new channel.
  328. The response to this packet from other WANCHAT users is to automatically 
  329. send out the topic for channel. The message data contains the text
  330. --> User xxxx (XXXX XXXX) has joined channel x.
  331.  
  332. (14h)   RIP_PACKET
  333.  
  334. This packet is broadcast every 30 seconds by every WANCHAT user. The
  335. first byte of the message data should contain the number of networks (N)
  336. that are represented by the data packet. The next four bytes are the
  337. first network number, the next four bytes are the next network number.
  338. This continues for a total of N networks.
  339.  
  340. (15h)   DATA_PACKET
  341.  
  342. The data packet contains the message that will be broadcast to all
  343. the WANCHAT users and directly displayed on the screen. The message
  344. should not be any larger than 66 bytes.
  345.  
  346.  
  347. This concludes the Technical Information section, if you have any questions
  348. regarding the functionality of WANCHAT, bug reports, suggestions or 
  349. donations, please feel free to contact me at one of the addresses 
  350. listed below.
  351.  
  352. Bugs and Shortcomings
  353. =====================
  354.  
  355. (1)     WANCHAT incorporates duplicate packet suppression. This was deemed
  356.         necessary due to the fact that our router occasionally would echo
  357.         packets back that were sent across it. This would manifest
  358.         itself as two identical messages displayed on the user's screen.
  359.         A packet having the same information as received in the previous
  360.         packet will not be displayed if it arrived less than 165ms after
  361.         the first packet. This just means that you can not send messages
  362.         faster than 6 packets/sec when they are identical messages(!). 
  363.         Generally, this is not a problem, due to the fact that it takes 
  364.         longer than 165ms to type in a message.
  365.  
  366. (2)     WANCHAT uses IPX for communication. IPX is a connectionless or
  367.         datagram oriented, this means that there is no guarantee of 
  368.         delivery to the destination. When running under Windows the
  369.         occasional packet gets corrupted due to the control of IPX
  370.         Int 7Ah by Windows. I have not yet dug into the Windows Resource
  371.         Reference to find a way to provide more processing time for IPX. 
  372.         It is therefore strongly discouraged to run this program under 
  373.         Windows.
  374.  
  375.  
  376. If you find this program useful, I would appreciate a small donation of
  377. $10/network. This will encourage me to find time to improve some of the
  378. short-comings or to implement additional functionality.
  379.  
  380.  
  381. Paper Mail:
  382.  
  383.         Stephan Edelman
  384.         1862 Westgrove Drive
  385.         Bright's Grove, Ontario
  386.         N0N 1C0 Canada
  387.  
  388. Electronic Mail:
  389.  
  390.         Internet:       stephan.edelman@netlink.on.ca
  391.                         stephan.edelman@linet.netlink.on.ca
  392.  
  393.         CompuServe:     72303,1607
  394.  
  395.  
  396. /Mar 6, 1994
  397.